package com.autologistics.service;

import java.util.List;

import com.autologistics.dao.GoodsDao;
import com.autologistics.model.Goods;
import com.autologistics.util.PageBean;

public class GoodsServiceImpl implements GoodsService {
	
	//to get a object of GoodsDao.
	private GoodsDao goodsDao;
	
	private PageBean pageBean;
	
	public PageBean getPageBean() {
		return pageBean;
	}


	public void setPageBean(PageBean pageBean) {
		this.pageBean = pageBean;
	}


	public GoodsDao getGoodsDao() {
		return goodsDao;
	}


	public void setGoodsDao(GoodsDao goodsDao) {
		this.goodsDao = goodsDao;
	}

	public List<Goods> searchGoods(int userId,String name) {
		System.out.println("goodsService"+"userId");
		return goodsDao.searchGoods(userId, name);
	}

	public List<Goods> listAll(int userId) {
		System.out.println("goodsService"+"userId"+userId);
//		List<Goods> goodsList=goodsDao.listAll(userId);
//		System.out.println("goodsList:size:"+goodsList.size()+goodsList.toString());
//		System.out.println(" "+goodsList.get(0).getName()+goodsList.get(0).getPrice()+goodsList.get(0).getGoodskind());
		return goodsDao.listAll(userId);
	}
	
/*	public int allRow(int userId){
		return goodsDao.allRow(userId);
		
	}*/
	public PageBean queryForOnePage(final int pageSize, int page,int userId){
		System.out.println("userId    "+userId);
		int allRow = goodsDao.allRow(userId);  //总记录数   
		System.out.println("allRow    "+allRow);
		int totalPage = PageBean.countTotalPage(pageSize, allRow); //总页数  
		System.out.println("totalPage    "+totalPage);
		
		final int offset = PageBean.countOffset(pageSize, page); //当前页开始记录  
		System.out.println("offset    "+offset);
		final int length = pageSize; // 每页记录数    
		final int currentPage = PageBean.countCurrentPage(page); // 当前页    
		List<Goods> onePageGoodslist = goodsDao.queryForOnePage(offset, length, userId); //    
		//把分页信息保存到Bean当中    
		PageBean pageBean  = new PageBean();    
		pageBean.setPageSize(pageSize);    
		pageBean.setCurrentPage(currentPage);    
		pageBean.setAllRow(allRow);    
		pageBean.setTotalPage(totalPage);    
		pageBean.setGoodsList(onePageGoodslist);    
	//	pageBean.init();    
		return pageBean; 
		
//		return goodsDao.queryForOnePage(offset, length, userId);
		
	}
	
	
	public void addGood(Goods newGood){
		goodsDao.addGood(newGood);
	
		
	}
	/**
	 * to get Goods object through id.
	 */
	public Goods getGoodById(int id){
		if(goodsDao.queryGoodById(id)==null){
			return null;
		}else{
			return goodsDao.queryGoodById(id);
		}		
	}
	
	public void updateGood(Goods good){
		goodsDao.updateGood(good);
		
	}

	public void deleteGood(int goodId){
		goodsDao.deleteGood(goodId);
		
	}
	public List<Goods> getGoodsByUserAndKind(int userId,int kind){
		return goodsDao.getGoodsByUserAndKind(userId, kind);
	}
	


	
}
